home *** CD-ROM | disk | FTP | other *** search
/ PC Player 2004 May / pc player 2004-05.iso / Demos / FarCry / Data1.cab / _7DC39224137D4930B2B2E2F749E4284A < prev    next >
Encoding:
Text File  |  2004-01-06  |  1.6 KB  |  69 lines

  1. // ===============================================================
  2. // Vertex Program: Indoor Water
  3. // Description: used in indoor refractive water
  4. // Last Update: 28/08/2003
  5. // Coder: Tiago Sousa
  6. // ===============================================================
  7.  
  8. #include "../CGVPMacro.csi"
  9.  
  10. Noise
  11. Projected
  12.  
  13. Param4f ( Name = NoisePos Comp 'time 0.4' Comp 'time 0.3' Comp = 0 User 'WaveAmplitude') // xy = wavepos, z = 0, w = amplitude
  14.  
  15. VertAttributes { POSITION_3 }
  16.  
  17. // setup vertex components
  18. MainInput
  19. {
  20.   // common model view matrix
  21.   VIEWPROJ_MATRIX,
  22.   uniform float4   CameraPos,  
  23.   uniform float4   Constants,
  24.   uniform float4   NoisePos,
  25.   uniform float4   TexGenRipple0,
  26.   uniform float4   TexGenRipple1,
  27.   uniform float4   TexShiftRipple,
  28.   uniform float4   TexDetailScale,
  29.   uniform float4   BumpMatrix, 
  30.   uniform float4 pg[66] : register(c30) 
  31. }
  32.  
  33. DeclarationsScript
  34. {
  35.   // vertex input
  36.   IN_P
  37.   // vertex output
  38.   OUT_T0_T1
  39. }
  40.  
  41. // output vertex position
  42. PositionScript = PosWaterDeform
  43.  
  44. CoreScript
  45. {
  46.   float4 vHPos = mul(ModelViewProj, vPos);  
  47.         
  48. #ifdef PROJECTEDENVBUMP
  49.   OUT.Tex1.xz = (vHPos.xz  + vHPos.w)*0.5;    
  50.   OUT.Tex1.y =  (-vHPos.y  + vHPos.w)*0.5;      
  51.   OUT.Tex1.w   = vHPos.w;      
  52. #endif
  53. #ifdef OTHER
  54.   OUT.Tex1.x = (vHPos.x / vHPos.w + 1)*0.5;  
  55.   OUT.Tex1.y = (-vHPos.y / vHPos.w + 1)*0.5;
  56. #endif
  57.   
  58.   //OUT.Tex1.zw=1;
  59.                 
  60.   float2 vTex;
  61.   vTex.x = dot(vPos, TexGenRipple0);
  62.   vTex.y = dot(vPos, TexGenRipple1);
  63.   vTex.xy= (vTex.xy+(TexShiftRipple.xy*TexShiftRipple.zw))*TexDetailScale.xy;
  64.  
  65.   // output texture coordinates  
  66.   OUT.Tex0.xy = vTex.xy;    
  67.   return OUT;
  68. }
  69.